<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>MAD (programming language)</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/MAD_(programming_language)"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-MAD_programming_language rootpage-MAD_programming_language skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">MAD (programming language)</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr">
<p class="mw-empty-elt">
</p>
<style data-mw-deduplicate="TemplateStyles:r1295905060">
/* start https://en.wikipedia.org/ */
.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}
/* end https://en.wikipedia.org/ */
</style><table class="infobox vevent"><tbody><tr><th colspan="2" class="infobox-above" style="background-color:#e0e0e0;">MAD</th></tr><tr><th scope="row" class="infobox-label"><a href="Programming_paradigm" title="Programming paradigm">Paradigm</a></th><td class="infobox-data"><a href="Procedural_programming" title="Procedural programming">procedural</a>, <a href="Imperative_programming_language" class="mw-redirect" title="Imperative programming language">imperative</a>, <a href="Structured_programming" title="Structured programming">structured</a></td></tr><tr><th scope="row" class="infobox-label">Family</th><td class="infobox-data"><a href="ALGOL" title="ALGOL">ALGOL</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="Bernard_Galler" title="Bernard Galler">Bernard Galler</a>, <a href="Bruce_Arden" title="Bruce Arden">Bruce Arden</a>, <a href="Robert_M._Graham_(computer_scientist)" title="Robert M. Graham (computer scientist)">Robert M. Graham</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="University_of_Michigan" title="University of Michigan">University of Michigan</a></td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">1959<span style="display:none"> (<span class="bday dtstart published updated">1959</span>)</span></td></tr><tr><th scope="row" class="infobox-label"><a href="Type_system" title="Type system">Typing discipline</a></th><td class="infobox-data"><a href="Static_type" class="mw-redirect" title="Static type">Static</a>, <a href="Strong_and_weak_typing" title="Strong and weak typing">strong</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Scope_(computer_science)" title="Scope (computer science)">Scope</a></th><td class="infobox-data"><a href="Scope_(computer_science)" title="Scope (computer science)">Lexical</a></td></tr><tr><th scope="row" class="infobox-label"><a href="Operating_system" title="Operating system">OS</a></th><td class="infobox-data"><a href="University_of_Michigan_Executive_System" title="University of Michigan Executive System">UMES</a>, <a href="Michigan_Terminal_System" title="Michigan Terminal System">MTS</a>, <a href="Compatible_Time-Sharing_System" title="Compatible Time-Sharing System">CTSS</a>, others</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Major <a href="Programming_language_implementation" title="Programming language implementation">implementations</a></th></tr><tr><td colspan="2" class="infobox-full-data"><a href="IBM_704" title="IBM 704">IBM 704</a>, <a href="IBM_7090" title="IBM 7090">7090</a>, <a href="IBM_System/360" title="IBM System/360">S/360</a>, <a href="IBM_System/370" title="IBM System/370">S/370</a>; <a href="UNIVAC_1108" class="mw-redirect" title="UNIVAC 1108">UNIVAC 1108</a>; <a href="Philco" title="Philco">Philco</a> 210-211</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;"><a href="Programming_language#Dialects,_flavors_and_implementations" title="Programming language">Dialects</a></th></tr><tr><td colspan="2" class="infobox-full-data">MAD, MAD/I, GOM</td></tr><tr><th colspan="2" class="infobox-header" style="background-color: #EEEEEE;">Influenced by</th></tr><tr><td colspan="2" class="infobox-full-data"><a href="ALGOL_58" title="ALGOL 58">IAL, ALGOL 58</a></td></tr></tbody></table>
<p><b>MAD</b> (<b>Michigan Algorithm Decoder</b>) is a <a href="Programming_language" title="Programming language">programming language</a> and <a href="Compiler" title="Compiler">compiler</a> for the <a href="IBM_704" title="IBM 704">IBM 704</a> and later the <a href="IBM_709" title="IBM 709">IBM 709</a>, <a href="IBM_7090" title="IBM 7090">IBM 7090</a>, <a href="IBM_7040" title="IBM 7040">IBM 7040</a>, <a href="UNIVAC_1107" class="mw-redirect" title="UNIVAC 1107">UNIVAC 1107</a>, <a href="UNIVAC_1108" class="mw-redirect" title="UNIVAC 1108">UNIVAC 1108</a>, <a href="Philco" title="Philco">Philco</a> 210-211, and eventually <a href="IBM_System/370" title="IBM System/370">IBM System/370</a> <a href="Mainframe_computer" title="Mainframe computer">mainframe computers</a>. Developed in 1959 at the <a href="University_of_Michigan" title="University of Michigan">University of Michigan</a> by <a href="Bernard_Galler" title="Bernard Galler">Bernard Galler</a>, <a href="Bruce_Arden" title="Bruce Arden">Bruce Arden</a> and <a href="Robert_M._Graham_(computer_scientist)" title="Robert M. Graham (computer scientist)">Robert M. Graham</a>, MAD is a variant of the <a href="ALGOL" title="ALGOL">ALGOL</a> language. It was widely used to teach programming at colleges and universities during the 1960s and played a minor role in the development of <a href="Compatible_Time-Sharing_System" title="Compatible Time-Sharing System">Compatible Time-Sharing System</a> (CTSS), <a href="Multics" title="Multics">Multics</a>, and the <a href="Michigan_Terminal_System" title="Michigan Terminal System">Michigan Terminal System</a> computer <a href="Operating_system" title="Operating system">operating systems</a>.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> The original version of the <a href="Chatbot" title="Chatbot">chatbot</a> <a href="ELIZA" title="ELIZA">ELIZA</a> was written in <a href="SLIP_(programming_language)" title="SLIP (programming language)">MAD-SLIP</a>.<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p><p>The archives at the <a href="Bentley_Historical_Library" title="Bentley Historical Library">Bentley Historical Library</a> of the University of Michigan contain reference materials on the development of MAD and MAD/I, including three linear feet of printouts with hand-written notations and original printed manuals.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-5" class="reference"><a href="#cite_note-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-6" class="reference"><a href="#cite_note-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup>
</p>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="MAD,_MAD/I,_and_GOM">MAD, MAD/I, and GOM</h2></div>
<p>Three MAD compilers exist:
</p>
<ol><li>Original <b>MAD</b>, the compiler developed in 1959 at the University of Michigan for the <a href="IBM_704" title="IBM 704">IBM 704</a> and later the <a href="IBM_709" title="IBM 709">IBM 709</a> and <a href="IBM_7090" title="IBM 7090">IBM 7090</a> <a href="Mainframe_computer" title="Mainframe computer">mainframe</a> computers running the <a href="University_of_Michigan_Executive_System" title="University of Michigan Executive System">University of Michigan Executive System</a> (UMES) and the <a href="Compatible_Time-Sharing_System" title="Compatible Time-Sharing System">Compatible Time-Sharing System</a> (CTSS) <a href="Operating_system" title="Operating system">operating systems</a>.<sup id="cite_ref-MADManual_7-0" class="reference"><a href="#cite_note-MADManual-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-deepblue.lib.umich.edu_8-0" class="reference"><a href="#cite_note-deepblue.lib.umich.edu-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> In the mid-1960s MAD was ported at the <a href="University_of_Maryland" class="mw-redirect" title="University of Maryland">University of Maryland</a> to the <a href="UNIVAC_1108" class="mw-redirect" title="UNIVAC 1108">UNIVAC 1108</a>.<sup id="cite_ref-UnisysMad_9-0" class="reference"><a href="#cite_note-UnisysMad-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> Versions of MAD were also available for the <a href="Philco" title="Philco">Philco</a> 210-211 and <a href="UNIVAC_1107" class="mw-redirect" title="UNIVAC 1107">UNIVAC 1107</a>.<sup id="cite_ref-UnisysMad_9-1" class="reference"><a href="#cite_note-UnisysMad-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup></li>
<li><b>MAD/I</b>, an "extended" version of MAD for the <a href="IBM_System/360" title="IBM System/360">IBM System/360</a> series of computers running under the <a href="Michigan_Terminal_System" title="Michigan Terminal System">Michigan Terminal System</a> (MTS). Work on the new compiler started in 1965 as part of the <a href="Defense_Advanced_Research_Projects_Agency" class="mw-redirect" title="Defense Advanced Research Projects Agency">ARPA</a> sponsored CONCOMP project at the University of Michigan. As work progressed it gradually became clear that MAD/I was a new language independent of the original 7090 version of MAD.<sup id="cite_ref-MADIManual_10-0" class="reference"><a href="#cite_note-MADIManual-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup></li>
<li><b>GOM</b> (Good Old MAD), a reimplementation of the original 7090 MAD for the <a href="IBM_System/370" title="IBM System/370">IBM System/370</a> series of mainframe computers running the <a href="Michigan_Terminal_System" title="Michigan Terminal System">Michigan Terminal System</a> (MTS). GOM was created in the early 1980s by Don Boettner at the University of Michigan Computing Center.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-GOMManual_12-0" class="reference"><a href="#cite_note-GOMManual-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup></li></ol>
<div class="mw-heading mw-heading2"><h2 id="History">History</h2></div>
<p>While <b>MAD</b> was motivated by <a href="ALGOL_58" title="ALGOL 58">ALGOL 58</a>, it does not resemble ALGOL 58 in any significant way.<sup id="cite_ref-MADSammet_13-0" class="reference"><a href="#cite_note-MADSammet-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup>
</p><p>Programs written in MAD included MAIL,<sup id="cite_ref-15" class="reference"><a href="#cite_note-15"><span class="cite-bracket">[</span>15<span class="cite-bracket">]</span></a></sup> <a href="RUNOFF" class="mw-redirect" title="RUNOFF">RUNOFF</a>,<sup id="cite_ref-16" class="reference"><a href="#cite_note-16"><span class="cite-bracket">[</span>16<span class="cite-bracket">]</span></a></sup> one of the first text processing systems, and several other utilities all under <a href="Compatible_Time-Sharing_System" title="Compatible Time-Sharing System">Compatible Time-Sharing System</a> (CTSS).<sup id="cite_ref-17" class="reference"><a href="#cite_note-17"><span class="cite-bracket">[</span>17<span class="cite-bracket">]</span></a></sup> Work was done on a design for a MAD compiler for <a href="Multics" title="Multics">Multics</a>, but it was never implemented.<sup id="cite_ref-18" class="reference"><a href="#cite_note-18"><span class="cite-bracket">[</span>18<span class="cite-bracket">]</span></a></sup>
</p><p>The following is an interesting quote from <i>An Interview with <a href="Brian_Kernighan" title="Brian Kernighan">Brian Kernighan</a></i><sup id="cite_ref-19" class="reference"><a href="#cite_note-19"><span class="cite-bracket">[</span>19<span class="cite-bracket">]</span></a></sup> when he was asked "What hooked you on programming?":
</p>
<dl><dd>I think that the most fun I had programming was a summer job at <a href="Project_MAC" class="mw-redirect" title="Project MAC">Project MAC</a> at MIT in the summer of 1966, where I worked on a program that created a job tape for the brand new GE 645 in the earliest days of Multics. I was writing in MAD, which was much easier and more pleasant than the FORTRAN and COBOL that I had written earlier, and I was using CTSS, the first time-sharing system, which was infinitely easier and more pleasant than punch cards.</dd></dl>
<p>MAD was quite fast compared to some of the other compilers of its day. Because a number of people were interested in using the <a href="FORTRAN" class="mw-redirect" title="FORTRAN">FORTRAN</a> language and yet wanted to obtain the speed of the MAD compiler, a system called MADTRAN (written in MAD) was developed. MADTRAN was simply a translator from FORTRAN to MAD, which then produced machine code. MADTRAN was distributed through <a href="SHARE_(computing)" title="SHARE (computing)">SHARE</a>.<sup id="cite_ref-MADSammet_13-1" class="reference"><a href="#cite_note-MADSammet-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p><p><b>MAD/I</b> has a syntactic structure similar to <a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a> together with important features from the original MAD and from <a href="PL/I" title="PL/I">PL/I</a>.<sup id="cite_ref-MADIManual_10-1" class="reference"><a href="#cite_note-MADIManual-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> MAD/I was designed as an extensible language. It was available for use under <a href="Michigan_Terminal_System" title="Michigan Terminal System">MTS</a> and provided many new ideas which made their way into other languages, but MAD/I compilations were slow and MAD/I never extended itself into widespread use when compared to the original 7090 MAD.<sup id="cite_ref-GOMManual_12-1" class="reference"><a href="#cite_note-GOMManual-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup>
</p><p><b>GOM</b> is essentially the 7090 MAD language modified and extended for the 360/370 architecture with some judicious tailoring to better fit current programming practices and problems.<sup id="cite_ref-GOMManual_12-2" class="reference"><a href="#cite_note-GOMManual-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> The <a href="Michigan_Terminal_System" title="Michigan Terminal System">MTS</a> Message System was written in GOM.
</p>
<div class="mw-heading mw-heading2"><h2 id="MAD,_Mad_magazine,_and_Alfred_E._Neuman">MAD, Mad magazine, and Alfred E. Neuman</h2></div>
<p>In a pre-release version of the original MAD, as a reference to MAD's namesake, <i><a href="Mad_(magazine)" title="Mad (magazine)">Mad</a></i> magazine, when a program contained too many compile time errors the compiler would print a full-page picture of <a href="Alfred_E._Neuman" title="Alfred E. Neuman">Alfred E. Neuman</a> using <a href="ASCII_art" title="ASCII art">ASCII art</a>. The caption read, "See this man about your program--He might want to publish it. He never worries--but from the looks of your program, you should."<sup id="cite_ref-UnisysMad_9-2" class="reference"><a href="#cite_note-UnisysMad-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> This feature was not included in the final official version.<sup id="cite_ref-20" class="reference"><a href="#cite_note-20"><span class="cite-bracket">[</span>20<span class="cite-bracket">]</span></a></sup> However, it was included in the production version for the IBM 7040.
</p><p>And Bernie Galler remembers:
</p>
<dl><dd>By the time we designed the language that we thought would be worth doing and for which we could do a compiler, we couldn't call it Algol anymore; it really was different. That's when we adopted the name MAD, for the Michigan Algorithm Decoder. We had some funny interaction with the Mad magazine people, when we asked for permission to use the name MAD. In a very funny letter, they told us that they would take us to court and everything else, but ended the threat with a P.S. at the bottom - "Sure, go ahead." Unfortunately, that letter is lost.<sup id="cite_ref-BernieGallerInterview_21-0" class="reference"><a href="#cite_note-BernieGallerInterview-21"><span class="cite-bracket">[</span>21<span class="cite-bracket">]</span></a></sup></dd></dl>
<div class="mw-heading mw-heading2"><h2 id=""Hello,_world"_example">"Hello, world" example</h2></div>
<p>The "<a href="Hello%2C_world" class="mw-redirect" title="Hello, world">hello, world</a>" example program prints the string "Hello, world" to a terminal or screen display.
</p>
<pre>PRINT FORMAT HELLOW
VECTOR VALUES HELLOW=$13h0Hello, world*$
END OF PROGRAM
</pre>
<p>The first character of the line is treated as <a href="ASA_carriage_control_characters" title="ASA carriage control characters">logical carriage control</a>, in this example the character "0" which causes a double-spaced line to be printed.
</p><p>Alternatively, contractions can be used, and the compiler will expand them in the listing:
</p>
<pre>P'T HELLOW
V'S HELLOW=$13h0Hello, world*$
E'M
</pre>
<div class="mw-heading mw-heading2"><h2 id="Language_elements">Language elements</h2></div>
<p>MAD and GOM, but not MAD/I, are composed of the following elements:<sup id="cite_ref-deepblue.lib.umich.edu_8-1" class="reference"><a href="#cite_note-deepblue.lib.umich.edu-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-GOMManual_12-3" class="reference"><a href="#cite_note-GOMManual-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-MADSammet_13-2" class="reference"><a href="#cite_note-MADSammet-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup>
</p>
<div class="mw-heading mw-heading3"><h3 id="Input_format">Input format</h3></div>
<p>MAD programs are a series of statements written on punched cards, generally one statement per card, although a statement can be continued to multiple cards. Columns 1-10 contains an optional statement label, comments or remarks are flagged using the letter "R" in column 11, and columns 73-80 are unused and could contain a sequence identifier. Spaces are not significant anywhere other than within character constants. For GOM input is free form with no sequence field and lines may be up to 255 characters long; lines that start with an asterisk (*) are comments; and lines that start with a plus-sign (+) are continuation lines.
</p>
<div class="mw-heading mw-heading3"><h3 id="Names">Names</h3></div>
<p>Variable names, function names, and statement labels have the same form, a letter followed by zero to five letters or digits. Function names end with a period. All names can be subscripted (the name followed by parentheses, with multiple subscripts separated by commas). For GOM names may be up to 24 characters long and may include the underscore (_) character.
</p><p>Few keywords in the language are reserved words since most are longer than six letters or are surrounded by periods. There is a standard set of abbreviations which can be used to replace the longer words. These consist of the first and last letters of the keywords with an apostrophe between them, such as W'R for WHENEVER and D'N for DIMENSION.
</p>
<div class="mw-heading mw-heading3"><h3 id="Data_types">Data types</h3></div>
<p>MAD uses the term "mode" for its data types. Five basic modes are supported:
</p>
<ul><li><b>Integer</b> written with or without a scale factor (<style data-mw-deduplicate="TemplateStyles:r886049734">
/* start https://en.wikipedia.org/ */
.mw-parser-output .monospaced{font-family:monospace,monospace}
/* end https://en.wikipedia.org/ */
</style><span class="monospaced">1, +1, -1, 1K10, 1K</span>) or as octal constants (to <span class="monospaced">7777777777777K</span>);</li>
<li><b>Floating Point</b> written with or without an exponent (<span class="monospaced">0., 1.5, -0.05, +100.4, -4., .05E-2, -.05E2, 5E02, 5.E2</span>);</li>
<li><b>Boolean</b> (<span class="monospaced">1B</span> for true and <span class="monospaced">0B</span> for false);</li>
<li><b>Statement Label</b>, and</li>
<li><b>Function Name</b> written as a name followed by a period (<span class="monospaced">SQRT.</span>).</li></ul>
<p>The mode of a constant can be redefined by adding the character M followed by a single digit at the end of the constant, where 0 indicates floating point, 1 integer, 2 boolean, 3 function name, and 4 statement label.
</p><p>For GOM six additional modes are added: <span class="monospaced">CHARACTER, SHORT INTEGER, BYTE INTEGER, LONG INTEGER, POINTER</span>, and <span class="monospaced">DYNAMIC RECORD</span>.
</p><p>Alphabetic or character constants are stored as integers and written using the dollar sign as a delimiter (<span class="monospaced">$ABCDEF$</span>) with double dollar-signs used to enter a true dollar sign (<span class="monospaced">$$$.56$</span> is 56 cents). Strings longer than six characters are represented using arrays.
</p>
<div class="mw-heading mw-heading3"><h3 id="Arrays_and_matrices">Arrays and matrices</h3></div>
<ul><li>There is no limit on the number of dimensions.</li>
<li>Negative and zero as well as floating-point subscripts are allowed.</li>
<li>Matrices are storied in consecutive memory locations in the order determined by varying the rightmost subscript first.</li>
<li>Matrices may be referenced using a subscript for each dimension, NAME(s<sub>1</sub>,s<sub>2</sub>,s<sub>3</sub>), or using a single subscript, NAME(s<sub>1</sub>).</li>
<li>Input-output lists, VECTOR VALUES statements, and some subroutines allow the use of block notation, which has the form A,...,B or A...B, which is a reference to the entire region from A to B. inclusive. In terms of a vector, A(1)...A(N) would be A(1), A(2), A(3), ..., A(N).</li>
<li>There are facilities that allow changing dimensions at run-time; permitting the programmer to vary the location of the initial element in an array within the overall block which has been set aside for the array; and allowing an arbitrary storage mapping to be specified.</li></ul>
<style data-mw-deduplicate="TemplateStyles:r1214851843">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hidden-begin{box-sizing:border-box;width:100%;padding:5px;border:none;font-size:95%}.mw-parser-output .hidden-title{font-weight:bold;line-height:1.6;text-align:left}.mw-parser-output .hidden-content{text-align:left}@media all and (max-width:500px){.mw-parser-output .hidden-begin{width:auto!important;clear:none!important;float:none!important}}
/* end https://en.wikipedia.org/ */
</style><div class="hidden-begin mw-collapsible mw-collapsible-leftside-toggle mw-collapsed" style=""><div class="hidden-title skin-nightmode-reset-color" style=""><big>List of operators, statements, and functions</big></div><div class="hidden-content mw-collapsible-content" style="">
<div class="mw-heading mw-heading3"><h3 id="Operators">Operators</h3></div>
<style data-mw-deduplicate="TemplateStyles:r1216972533">
/* start https://en.wikipedia.org/ */
.mw-parser-output .col-begin{border-collapse:collapse;padding:0;color:inherit;width:100%;border:0;margin:0}.mw-parser-output .col-begin-small{font-size:90%}.mw-parser-output .col-break{vertical-align:top;text-align:left}.mw-parser-output .col-break-2{width:50%}.mw-parser-output .col-break-3{width:33.3%}.mw-parser-output .col-break-4{width:25%}.mw-parser-output .col-break-5{width:20%}@media(max-width:720px){.mw-parser-output .col-begin,.mw-parser-output .col-begin>tbody,.mw-parser-output .col-begin>tbody>tr,.mw-parser-output .col-begin>tbody>tr>td{display:block!important;width:100%!important}.mw-parser-output .col-break{padding-left:0!important}}
/* end https://en.wikipedia.org/ */
</style><div>
<table class="col-begin" role="presentation">
<tbody><tr>
<td class="col-break col-break-2">
<div class="mw-heading mw-heading4"><h4 id="Arithmetic_operators">Arithmetic operators</h4></div>
<ul><li>.ABS. (unary absolute value)</li>
<li>+ (unary identity)</li>
<li>- (unary negation)</li>
<li>+ (addition)</li>
<li>- (subtraction)</li>
<li>* (multiplication)</li>
<li>/ (division)</li>
<li>.P. (exponentiation)</li>
<li>.N. (bitwise negation)</li>
<li>.A. (bitwise and)</li>
<li>.V. (bitwise or)</li>
<li>.EV. (bitwise exclusive or)</li>
<li>.LS. (left shift)</li>
<li>.RS. (right shift)</li>
<li>.REM. (remainder, GOM only)</li></ul>
<div class="mw-heading mw-heading4"><h4 id="Pointer_operators_(GOM_only)">Pointer operators (GOM only)</h4></div>
<ul><li>: (selection)</li>
<li>.LOC. (location)</li>
<li>.IND. (indirection)</li></ul>
</td>
<td class="col-break col-break-2">
<div class="mw-heading mw-heading4"><h4 id="Relational_operators">Relational operators</h4></div>
<ul><li>.L. (less than)</li>
<li>.LE. (less than or equal)</li>
<li>.E. (equal)</li>
<li>.NE. (not equal)</li>
<li>.G. (greater than)</li>
<li>.GE. (greater than or equal)</li></ul>
<div class="mw-heading mw-heading4"><h4 id="Boolean_operators">Boolean operators</h4></div>
<ul><li>.NOT. (unary logical not)</li>
<li>.OR. (logical or)</li>
<li>.EXOR. (logical exclusive or)</li>
<li>.AND. (logical and)</li>
<li>.THEN. (implies)</li>
<li>.EQV. (equivalence)</li></ul>
<div class="mw-heading mw-heading4"><h4 id="Bit_operators_(GOM_only)">Bit operators (GOM only)</h4></div>
<ul><li>.SETBIT. (set bit to 1)</li>
<li>.RESETBIT. (reset bit to 0)</li>
<li>.BIT. (test bit)</li></ul>
<p>
</p>
</td></tr></tbody></table></div>
<div class="mw-heading mw-heading3"><h3 id="Declaration_statements">Declaration statements</h3></div>
<p>Variables may be implicitly or explicitly declared. By default all implicitly declared variables are assumed to be floating point. The NORMAL MODE IS statement may be used to change this default.
</p>
<div>
<table class="col-begin" role="presentation">
<tbody><tr>
<td class="col-break col-break-2">
<ul><li>FLOATING POINT var<sub>1</sub>, var<sub>2</sub>, ... (may include dimension information)</li>
<li>INTEGER var<sub>1</sub>, var<sub>2</sub>, ... (may include dimension information)</li>
<li>BOOLEAN var<sub>1</sub>, var<sub>2</sub>, ... (may include dimension information)</li>
<li>FUNCTION NAME <i>name</i><sub>1</sub>, <i>name</i><sub>2</sub>, ... (may include dimension information)</li>
<li>STATEMENT LABEL <i>label</i><sub>1</sub>, <i>label</i><sub>2</sub>, ... (may include dimension information)</li>
<li>MODE NUMBER <i>n</i>, var<sub>1</sub>, var<sub>2</sub>, ... (may include dimension information)</li>
<li>NORMAL MODE IS <i>type-name</i> (INTEGER, BOOLEAN, FLOATING POINT, STATEMENT LABEL, or FUNCTION NAME)</li>
<li>NORMAL MODE IS MODE NUMBER <i>n</i></li>
<li>DIMENSION <i>variable</i>(<i>max-dimension</i>) (declares an array from 0...<i>max-dimension</i>)</li>
<li>DIMENSION <i>variable</i>(<i>from</i>...<i>to</i>)</li>
<li>DIMENSION <i>variable</i>(<i>subscript<sub>1</sub></i>, <i>subscript<sub>2</sub></i>, ..., <i>subscript<sub>n</sub></i>) (declares a multidimensional array)</li></ul>
</td>
<td class="col-break col-break-2">
<ul><li>VECTOR VALUES <i>array</i>(<i>n</i>) = c<sub>1</sub>, c<sub>2</sub>, c<sub>3</sub>, ...</li>
<li>VECTOR VALUES <i>array</i>(<i>m</i>) ... <i>array</i>(<i>n</i>) = constant</li>
<li>DOUBLE STORAGE MODE <i>mode-list</i> (doubles the amount of storage allocated for the modes listed)</li>
<li>EQUIVALENCE (<i>a</i><sub>1</sub>, <i>a</i><sub>2</sub>, ..., <i>a</i><sub>m</sub>), ...</li>
<li>PROGRAM COMMON <i>a</i>, <i>b</i>, <i>c</i>, ... (may include dimension information)</li>
<li>ERASABLE <i>a</i>, <i>b</i>, <i>c</i>, ... (may include dimension information)</li>
<li>PARAMETER <i>A</i><sub>1</sub>(<i>B</i><sub>1</sub>), <i>A</i><sub>2</sub>(<i>B</i><sub>2</sub>), ..., <i>A</i><sub>n</sub>(<i>B</i><sub>n</sub>)</li>
<li>SYMBOL TABLE VECTOR <i>variable</i></li>
<li>FULL SYMBOL TABLE VECTOR <i>variable</i></li>
<li>LISTING ON (the default)</li>
<li>LISTING OFF</li>
<li>REFERENCES ON</li>
<li>REFERENCES OFF (the default)</li></ul>
<p>
</p>
</td></tr></tbody></table></div>
<div class="mw-heading mw-heading3"><h3 id="Executable_statements">Executable statements</h3></div>
<div>
<table class="col-begin" role="presentation">
<tbody><tr>
<td class="col-break col-break-2">
<ul><li><i>variable</i> = <i>expression</i> (assignment)</li>
<li>TRANSFER TO <i>statement-label</i></li>
<li>WHENEVER <i>boolean-expression</i>, <i>executable-statement</i> (simple conditional)</li>
<li>WHENEVER <i>boolean-expression</i> (compound conditional)
<ul><li>OR WHENEVER <i>boolean-expression</i></li>
<li>OTHERWISE</li>
<li>END OF CONDITIONAL</li></ul></li>
<li>CONTINUE (do nothing statement, usually used to carry a statement label)</li></ul>
</td>
<td class="col-break col-break-2">
<ul><li>THROUGH <i>statement-label</i>, FOR VALUES OF <i>variable</i> = <i>expression-list</i> (iteration)</li></ul>
<dl><dd>(where <i>variable</i> may be any mode including floating-point)</dd></dl>
<ul><li>SET LIST TO <i>array-element</i>, [ <i>expression</i> ]</li>
<li>SAVE DATA <i>list</i></li>
<li>RESTORE DATA <i>list</i></li>
<li>PAUSE NO. <i>octal-integer</i> (stop execution, print an octal number on the operators console, allow manual restart)</li>
<li>END OF PROGRAM (the last statement in all MAD programs)</li></ul>
<p>
</p>
</td></tr></tbody></table></div>
<div class="mw-heading mw-heading3"><h3 id="Input_and_output_statements">Input and output statements</h3></div>
<div>
<table class="col-begin" role="presentation">
<tbody><tr>
<td class="col-break col-break-2">
<ul><li>READ DATA (reads data using a self-defining format, <i>var1</i>=<i>value1</i>, <i>var2</i>=<i>value2</i>, ..., <i>varN</i>=<i>valueN</i></li>
<li>READ AND PRINT DATA (similar to READ DATA, but data read is echoed to the printer)</li>
<li>READ FORMAT <i>format</i>, <i>list</i></li>
<li>READ BCD TAPE <i>n</i>, <i>format</i>, <i>list</i></li>
<li>READ BINARY TAPE <i>n</i>, <i>list</i></li>
<li>PRINT RESULTS <i>list</i></li>
<li>PRINT BCD RESULTS <i>list</i></li>
<li>PRINT OCTAL RESULTS <i>list</i></li>
<li>PRINT COMMENT $<i>string</i>$ (first character of string is carriage control)</li>
<li>PRINT FORMAT <i>format</i>, <i>list</i></li>
<li>PRINT ON LINE FORMAT <i>format</i>, <i>list</i> (display a message for the machine operator)</li>
<li>WRITE BCD TAPE <i>n</i>, <i>format</i>, <i>list</i></li>
<li>WRITE BINARY TAPE <i>n</i>, <i>list</i></li></ul>
</td>
<td class="col-break col-break-2">
<ul><li>PUNCH FORMAT <i>format</i>, <i>list</i></li>
<li>LOOK AT FORMAT <i>format</i>, <i>list</i> (read data without advancing to next record)</li>
<li>REWIND TAPE <i>n</i></li>
<li>END OF FILE TAPE <i>n</i></li>
<li>BACKSPACE RECORD OF TAPE <i>n</i></li>
<li>BACKSPACE RECORD OF TAPE <i>n</i>, IF LOAD POINT TRANSFER TO <i>statement</i></li>
<li>BACKSPACE FILE OF TAPE <i>n</i></li>
<li>BACKSPACE FILE OF TAPE <i>n</i>, IF LOAD POINT TRANSFER TO <i>statement</i></li>
<li>SET LOW DENSITY TAPE <i>n</i></li>
<li>SET HIGH DENSITY TABLE <i>n</i></li>
<li>REWIND TAPE <i>n</i></li>
<li>UNLOAD TAPE <i>n</i></li>
<li>FORMAT VARIABLE <i>list</i> (declaration, may include dimension information)</li></ul>
<p>
</p>
</td></tr></tbody></table></div>
<div class="mw-heading mw-heading3"><h3 id="Functions">Functions</h3></div>
<p>Function names end with a period. Internal and external functions are supported. Internal functions are compiled as part of the program in which they are used and share declarations and variables with the main program. External functions are compiled separately and do not share declarations and variables. A one statement definition of internal functions is permitted. Recursive functions are permitted, although the function must do some of the required saving and restoring work itself.
</p>
<div>
<table class="col-begin" role="presentation">
<tbody><tr>
<td class="col-break col-break-2">
<ul><li>INTERNAL FUNCTION <i>function-name</i>.(<i>argument-list</i>) = <i>expression</i> (single statement definition)</li>
<li>INTERNAL FUNCTION <i>function-name</i>.(<i>argument-list</i>)</li>
<li>EXTERNAL FUNCTION <i>function-name</i>.(<i>argument-list</i>)</li>
<li>ENTRY TO NAME <i>name</i>.</li>
<li>END OF FUNCTION (last statement in a multiple line definition)</li>
<li>FUNCTION RETURN [ <i>expression</i> ]</li></ul>
</td>
<td class="col-break col-break-2">
<ul><li>ERROR RETURN (force an error return to a statement or to the operating system, if no error statement is given as last argument of the call)</li>
<li>SAVE RETURN</li>
<li>RESTORE DATA</li>
<li>RESTORE RETURN</li>
<li>EXECUTE <i>procedure</i>.(<i>argument-list</i>) (call a non-single valued function)</li></ul>
<p>
</p>
</td></tr></tbody></table></div>
</div></div>
<div class="mw-heading mw-heading2"><h2 id="Operator_definition_and_redefinition">Operator definition and redefinition</h2></div>
<p>One of the most interesting features in MAD is the ability to extend the language by redefining existing operators, defining new operators, or defining new data types (modes). The definitions are made using MAD declaration statements and assembly language mnemonics included following the declaration up to the END pseudo-instruction that implement the operation.
</p>
<ul><li>DEFINE BINARY OPERATOR <i>defined-op</i>, PRECEDENCE <i>rank</i> <i>existing-op</i> MODE STRUCTURE <i>mode-options</i></li>
<li>DEFINE UNARY OPERATOR <i>defined-op</i>, PRECEDENCE <i>rank</i> <i>existing-op</i> MODE STRUCTURE <i>mode-options</i></li>
<li>MODE STRUCTURE <i>mode-no</i> = <i>mode-no</i> <i>existing-op</i> <i>mode-no</i></li>
<li>MODE STRUCTURE <i>mode-no</i> = <i>mode-no</i> <i>existing-op</i> <i>mode-no</i> SAME SEQUENCE AS <i>mode-no</i> <i>existing-op</i> <i>mode-no</i></li></ul>
<p>where:
</p>
<ul><li><i>rank</i> is one of SAME AS, LOWER THAN, or HIGHER THAN; and</li>
<li><i>mode-options</i> are the options that appear on the MODE STRUCTURE statement.</li></ul>
<p>Three pre-defined packages of definitions (MATRIX, DOUBLE PRECISION, and COMPLEX) are available for inclusion in MAD source programs using the INCLUDE statement.
</p>
<ul><li>INCLUDE <i>package</i></li></ul>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="ALGOL_58" title="ALGOL 58">ALGOL 58</a></li>
<li><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="Notes">Notes</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */
.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}
/* end https://en.wikipedia.org/ */
</style><div class="reflist reflist-columns references-column-width" style="column-width: 30em;">
<ol class="references">
<li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */
.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}
/* end https://en.wikipedia.org/ */
</style><cite id="CITEREFAlt1967" class="citation book cs1">Alt, Franz (1967). <i>Advances in Computers</i>. <a href="Academic_Press" title="Academic Press">Academic Press</a>. p. 143. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>0-12-012104-2</bdi>.</cite></span>
</li>
<li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><cite id="CITEREFShrager" class="citation web cs1">Shrager, Jeff. <a rel="nofollow" class="external text" href="https://web.archive.org/web/20210813233541/https://sites.google.com/view/elizagen-org/the-original-eliza">"Joseph Weizenbaum's Original ELIZA"</a>. Archived from <a rel="nofollow" class="external text" href="https://sites.google.com/view/elizagen-org/the-original-eliza">the original</a> on August 13, 2021<span class="reference-accessdate">. Retrieved <span class="nowrap">January 12,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://quod.lib.umich.edu/cgi/f/findaid/findaid-idx?c=bhlead;cc=bhlead;type=simple;rgn=Entire%20Finding%20Aid;q1=MAD;view=reslist;subview=standard;sort=occur;start=1;size=25;didno=umich-bhl-0351;focusrgn=C01;byte=24555661">Technical Memos</a>, University of Michigan Computing Center publications, 1965-1999</span>
</li>
<li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://quod.lib.umich.edu/cgi/f/findaid/findaid-idx?c=bhlead;cc=bhlead;type=simple;rgn=Entire%20Finding%20Aid;q1=MAD;view=reslist;subview=standard;sort=occur;start=1;size=25;didno=umich-bhl-0351;focusrgn=C01;byte=24564725">Technical Reports</a>, University of Michigan Computing Center publications, 1965-1999</span>
</li>
<li id="cite_note-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-5">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://quod.lib.umich.edu/cgi/f/findaid/findaid-idx?c=bhlead;cc=bhlead;type=simple;rgn=Entire%20Finding%20Aid;q1=MAD;view=reslist;subview=standard;sort=occur;start=1;size=25;didno=umich-bhl-9551;focusrgn=C01;byte=24604876">Topical File 1960-1986</a>, University of Michigan Computing Center records, 1952-1996</span>
</li>
<li id="cite_note-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-6">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://quod.lib.umich.edu/cgi/f/findaid/findaid-idx?c=bhlead;cc=bhlead;type=simple;rgn=Entire%20Finding%20Aid;q1=MAD;view=reslist;subview=standard;sort=occur;start=1;size=25;didno=umich-bhl-9551;focusrgn=C01;byte=24695986">MAD (Michigan Algorithm Decoder) 1960-1979</a>, University of Michigan Computing Center records, 1952-1996</span>
</li>
<li id="cite_note-MADManual-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-MADManual_7-0">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/univOfMichigan/mad/L2-UOI-MAD1-2-RX_MADum_62.pdf"><i>A User's Reference Manual For The Michigan Algorithm Decoder (MAD) For the IBM 7090</i></a>, Digital Computer Laboratory, Graduate College, University of Illinois, 1962, 221 pages</span>
</li>
<li id="cite_note-deepblue.lib.umich.edu-8"><span class="mw-cite-backlink">^ <a href="#cite_ref-deepblue.lib.umich.edu_8-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-deepblue.lib.umich.edu_8-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://deepblue.lib.umich.edu/bitstream/2027.42/3292/5/bab2545.0001.001.pdf"><i>The Michigan Algorithm Decoder (The MAD Manual)</i></a>, Bruce W. Arden, Revised Edition 1966</span>
</li>
<li id="cite_note-UnisysMad-9"><span class="mw-cite-backlink">^ <a href="#cite_ref-UnisysMad_9-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-UnisysMad_9-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-UnisysMad_9-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><cite id="CITEREFGeorge_Gray2002" class="citation journal cs1">George Gray (June 2002). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170629210750/https://wiki.cc.gatech.edu/folklore/index.php/UNIVAC_and_ALGOL">"UNIVAC and ALGOL"</a>. <i>Unisys History Newsletter</i>. <b>6</b> (2). Archived from <a rel="nofollow" class="external text" href="https://wiki.cc.gatech.edu/folklore/index.php/UNIVAC_and_ALGOL#MAD">the original</a> on June 29, 2017.</cite></span>
</li>
<li id="cite_note-MADIManual-10"><span class="mw-cite-backlink">^ <a href="#cite_ref-MADIManual_10-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MADIManual_10-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://deepblue.lib.umich.edu/bitstream/2027.42/3709/5/abu9341.0001.001.pdf"><i>The MAD/I Manual</i></a>, Bolas, Springer, and Srodawa, CONCOMP Technical Report 32, 1970, University of Michigan, Ann Arbor, 194 pages</span>
</li>
<li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://hdl.handle.net/2027.42/79612"><i>MTS Volume 2: Public File Descriptions</i></a>, University of Michigan Computing Center, 1990, p. 14</span>
</li>
<li id="cite_note-GOMManual-12"><span class="mw-cite-backlink">^ <a href="#cite_ref-GOMManual_12-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-GOMManual_12-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-GOMManual_12-2"><sup><i><b>c</b></i></sup></a> <a href="#cite_ref-GOMManual_12-3"><sup><i><b>d</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://hdl.handle.net/2027.42/79620"><i>GOM Manual</i></a>, Don Boettner, University of Michigan Computing Center, Ann Arbor, June 1989</span>
</li>
<li id="cite_note-MADSammet-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-MADSammet_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-MADSammet_13-1"><sup><i><b>b</b></i></sup></a> <a href="#cite_ref-MADSammet_13-2"><sup><i><b>c</b></i></sup></a></span> <span class="reference-text"><a rel="nofollow" class="external text" href="https://hopl.info/showlanguage.prx?exp=92"><i>Computer Languages - Principles and History</i></a></span>
</li>
<li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text">In August 2010 when asked about Jean's Sammet's statement that "MAD does not resemble ALGOL 58 in any significant way", Bruce Arden wrote: "Regarding Jean Sammet, she may have conflated the two versions of IAL (58 and <a href="ALGOL_60" title="ALGOL 60">60</a>). Unlike the later version, the 58 version said nothing about what words (or language) should be used to identify conditional and transfer statements, which led for parsing reasons to words like WHENEVER. Also there were some additional features in MAD that went beyond the 58 specs."</span>
</li>
<li id="cite_note-15"><span class="mw-cite-backlink"><b><a href="#cite_ref-15">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.multicians.org/thvv/mail-details.html">Documentation and Source for Early Electronic Mail and Messaging</a>, Tom Van Vleck</span>
</li>
<li id="cite_note-16"><span class="mw-cite-backlink"><b><a href="#cite_ref-16">^</a></b></span> <span class="reference-text">"... Doug McIlroy and Bob Morris wrote Multics runoff in BCPL based on Jerry Saltzer's MAD version of RUNOFF for CTSS.", <a rel="nofollow" class="external text" href="https://multicians.org/features.html#tag177">"Multics Software Features: Section 1.7.7"</a>, Multicans Web site. Retrieved November 10, 2018.</span>
</li>
<li id="cite_note-17"><span class="mw-cite-backlink"><b><a href="#cite_ref-17">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.multicians.org/thvv/compatible-time-sharing-system.pdf"><i>Compatible Time-Sharing System (1961-1973): Fiftieth Anniversary Commemorative Overview</i></a>, David Walden and Tom Van Vleck (Eds), 2011, IEEE Computer Society. Retrieved November 10, 2018.</span>
</li>
<li id="cite_note-18"><span class="mw-cite-backlink"><b><a href="#cite_ref-18">^</a></b></span> <span class="reference-text"><a rel="nofollow" class="external text" href="http://www.multicians.org/mgm.html">"Glossary of Multics acronyms and terms"</a>, Tom Van Vleck, Multicans Web site.</span>
</li>
<li id="cite_note-19"><span class="mw-cite-backlink"><b><a href="#cite_ref-19">^</a></b></span> <span class="reference-text"><cite id="CITEREFNoren2009" class="citation web cs1">Noren, Allen (April 10, 2009). <a rel="nofollow" class="external text" href="https://web.archive.org/web/20170630062507/http://broadcast.oreilly.com/2009/04/an-interview-with-brian-kernig.html">"An Interview with Brian Kernighan: Breeding Little Languages"</a>. <i>O'Reilly Community</i>. Archived from <a rel="nofollow" class="external text" href="http://broadcast.oreilly.com/2009/04/an-interview-with-brian-kernig.html">the original</a> on June 30, 2017<span class="reference-accessdate">. Retrieved <span class="nowrap">July 28,</span> 2023</span>.</cite></span>
</li>
<li id="cite_note-20"><span class="mw-cite-backlink"><b><a href="#cite_ref-20">^</a></b></span> <span class="reference-text"><cite id="CITEREFShneidermanPlaisant2004" class="citation book cs1">Shneiderman, Ben; Plaisant, Catherine (May 7, 2004). <i>Designing the user interface</i> (4th ed.). <a href="Addison_Wesley" class="mw-redirect" title="Addison Wesley">Addison Wesley</a>. <a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <bdi>978-0-321-19786-3</bdi>.</cite></span>
</li>
<li id="cite_note-BernieGallerInterview-21"><span class="mw-cite-backlink"><b><a href="#cite_ref-BernieGallerInterview_21-0">^</a></b></span> <span class="reference-text"><cite id="CITEREFGallerGaller2001" class="citation journal cs1">Galler, Bernard A.; Galler, Enid H. (January 2001). "A Career Interview with Bernie Galler". <i><a href="IEEE_Annals_of_the_History_of_Computing" title="IEEE Annals of the History of Computing">IEEE Annals of the History of Computing</a></i>. <b>23</b> (1): <span class="nowrap">22–</span>33. <a href="Doi_(identifier)" class="mw-redirect" title="Doi (identifier)">doi</a>:<a rel="nofollow" class="external text" href="https://doi.org/10.1109%2F85.910847">10.1109/85.910847</a>. <a href="ISSN_(identifier)" class="mw-redirect" title="ISSN (identifier)">ISSN</a> <a rel="nofollow" class="external text" href="https://search.worldcat.org/issn/1058-6180">1058-6180</a>.</cite></span>
</li>
</ol></div>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239549316">
/* start https://en.wikipedia.org/ */
.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}
/* end https://en.wikipedia.org/ */
</style><div class="refbegin" style="">
<ul><li><i>An Abbreviated description of the MAD compiler language</i>, <a href="Fernando_J._Corbat%C3%B3" title="Fernando J. Corbató">Fernando J. Corbató</a>, <a href="Jerome_H._Saltzer" class="mw-redirect" title="Jerome H. Saltzer">Jerome H. Saltzer</a>, Neil Barta, and Thomas N. Hastings, M.I.T. Computation Center Memorandum CC-213, June 1963.</li>
<li><i>CLSYS, a program to facilitate the use of the MAD translator for large (class-size) batches</i>, Jerome H. Saltzer, M.I.T. Computation Center Memorandum CC-204. February 1963.</li>
<li><i>A Computer Primer for the Mad Language</i>, <a href="Elliott_Organick" title="Elliott Organick">Elliott Irving Organick</a>, 1961.</li>
<li><a rel="nofollow" class="external text" href="https://hopl.info/showlanguage.prx?exp=92"><i>Internal organization of the MAD translator</i></a>, Arden, B. W., Galler, B. A. and Graham, R. M., pp. 28–31, CACM Volume 4 No. 1 (Jan 1961)</li>
<li><i>An Introduction To Algorithmic Methods Using The MAD Language</i>, Alan B. Marcovitz and Earl J. Schweppe, Macmillan, 1966.</li>
<li><a rel="nofollow" class="external text" href="http://deepblue.lib.umich.edu/bitstream/2027.42/4023/5/aca1743.0001.001.pdf"><i>An Introduction to Digital Computers and the MAD Language</i></a>, Brice Carnahan, University of Michigan.</li>
<li><a rel="nofollow" class="external text" href="http://www.bitsavers.org/pdf/univOfMichigan/mad/Galler_TheLangOfComps_1962.pdf"><i>The Language of Computers</i></a>, Bernard A. Galler, University of Michigan, McGraw-Hill, 1962.</li>
<li><a rel="nofollow" class="external text" href="https://hopl.info/showlanguage.prx?exp=92"><i>MAD at Michigan: its function & features</i></a>, Arden, B. W., Galler, B. A., and Graham, R. M., pp27–28, Datamation, Volume 7 No. 12 (Dec 1961)</li>
<li><i>Flow Charts of The Michigan Algorithm Decoder</i>, by G. B. Smith, SHARE General Program Library, SHARE Distribution Number 1327 PA, 1961</li></ul>
</div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.catb.org/~esr/mad/">Eric Raymond's retrocompiler for MAD</a></li>
<li><a rel="nofollow" class="external text" href="http://99-bottles-of-beer.net/language-michigan-algorithm-decoder-391.html">A trivial example of a MAD program</a></li>
<li><a rel="nofollow" class="external text" href="http://www.cozx.com/dpitts/ibm7090.html">Dave Pitts' IBM 7094 support</a> – Has a CTSS environment that includes the MIT version of MAD.</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */
.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}
/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}
/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="ALGOL445" style="padding:3px"><table class="nowraplinks hlist mw-collapsible mw-collapsed navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */
.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}
/* end https://en.wikipedia.org/ */
</style><div id="ALGOL445" style="font-size:114%;margin:0 4em"><a href="ALGOL" title="ALGOL">ALGOL</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Programming_language_implementation" title="Programming language implementation">Implementations</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Technical_standard" title="Technical standard">Technical<br>standards</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ALGOL_58" title="ALGOL 58">ALGOL 58</a></li>
<li><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a></li>
<li><a href="ALGOL_68" title="ALGOL 68">ALGOL 68</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">Dialects</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>ABC ALGOL</li>
<li><a href="ALCOR" title="ALCOR">ALCOR</a></li>
<li><a href="ALGO" title="ALGO">ALGO</a></li>
<li><a href="ALGOL_68C" title="ALGOL 68C">ALGOL 68C</a></li>
<li><a href="ALGOL_68-R" title="ALGOL 68-R">ALGOL 68-R</a></li>
<li><a href="ALGOL_68RS" title="ALGOL 68RS">ALGOL 68RS</a> (<a href="ELLA_(programming_language)" title="ELLA (programming language)">ELLA</a>)</li>
<li><a href="ALGOL_68S" title="ALGOL 68S">ALGOL 68S</a></li>
<li><a href="ALGOL_N" title="ALGOL N">ALGOL N</a></li>
<li><a href="ALGOL_W" title="ALGOL W">ALGOL W</a></li>
<li><a href="ALGOL_X" class="mw-redirect" title="ALGOL X">ALGOL X</a></li>
<li><a href="Atlas_Autocode" title="Atlas Autocode">Atlas Autocode</a> (<a href="Edinburgh_IMP" title="Edinburgh IMP">Edinburgh IMP</a>)</li>
<li><a href="Burroughs_Large_Systems#ALGOL" title="Burroughs Large Systems">Burroughs ALGOL</a></li>
<li><a href="CORAL" title="CORAL">CORAL</a> 66</li>
<li><a href="Dartmouth_ALGOL_30" class="mw-redirect" title="Dartmouth ALGOL 30">Dartmouth ALGOL 30</a></li>
<li><a href="DASK" title="DASK">DASK</a> ALGOL</li>
<li><a href="DG/L" title="DG/L">DG/L</a></li>
<li><a href="Elliott_ALGOL" title="Elliott ALGOL">Elliott ALGOL</a></li>
<li><a href="Executive_Systems_Problem_Oriented_Language" class="mw-redirect" title="Executive Systems Problem Oriented Language">Executive Systems Problem Oriented Language</a> (ESPOL) → New Executive Programming Language (<a href="NEWP" class="mw-redirect" title="NEWP">NEWP</a>)</li>
<li><a href="FLACC" title="FLACC">FLACC</a></li>
<li><a href="IMP_(programming_language)" title="IMP (programming language)">IMP</a></li>
<li><a href="JOVIAL" title="JOVIAL">JOVIAL</a></li>
<li><a href="English_Electric_KDF9" title="English Electric KDF9">Kidsgrove</a> Algol</li>
<li><a href="Mary_(programming_language)" title="Mary (programming language)">Mary</a></li>
<li><a href="NELIAC" title="NELIAC">NELIAC</a></li>
<li><a href="RTL/2" title="RTL/2">RTL/2</a></li>
<li><a href="S-algol" title="S-algol">S-algol</a>, <a href="PS-algol" title="PS-algol">PS-algol</a>, <a href="Napier88" title="Napier88">Napier88</a></li>
<li><a href="Simula" title="Simula">Simula</a></li>
<li>Small Machine ALGOL Like Language (<a href="SMALL" title="SMALL">SMALL</a>)</li>
<li><a href="SMIL_(computer)" title="SMIL (computer)">SMIL</a> ALGOL</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Formalism_(philosophy_of_mathematics)" title="Formalism (philosophy of mathematics)">Formalisms</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Jensen's_device" title="Jensen's device">Jensen's device</a></li>
<li><a href="Van_Wijngaarden_grammar" title="Van Wijngaarden grammar">Van Wijngaarden grammar</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Community_of_practice" title="Community of practice">Community</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%">Organizations</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Professional_association" title="Professional association">Professional<br>associations</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="ALCOR" title="ALCOR">ALCOR</a> Group</li>
<li><a href="Association_for_Computing_Machinery" title="Association for Computing Machinery">Association for Computing Machinery</a> (ACM)</li>
<li><a href="BSI_Group" title="BSI Group">BSI Group</a></li>
<li><a href="GOST" title="GOST">Euro-Asian Council for Standardization, Metrology and Certification</a> (EASC)</li>
<li><a href="International_Federation_for_Information_Processing" title="International Federation for Information Processing">International Federation for Information Processing</a> (IFIP) <a href="IFIP_Working_Group_2.1" title="IFIP Working Group 2.1">IFIP Working Group 2.1</a></li>
<li><a href="Gesellschaft_f%C3%BCr_Angewandte_Mathematik_und_Mechanik" title="Gesellschaft für Angewandte Mathematik und Mechanik">Society of Applied Mathematics and Mechanics</a> (GAMM)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Business</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Burroughs_Corporation" title="Burroughs Corporation">Burroughs Corporation</a></li>
<li><a href="Elliott_Brothers_(computer_company)" title="Elliott Brothers (computer company)">Elliott Brothers</a></li>
<li><a href="Regnecentralen" title="Regnecentralen">Regnecentralen</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Education</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Case_Western_Reserve_University" title="Case Western Reserve University">Case Institute of Technology</a></li>
<li><a href="University_of_Edinburgh" title="University of Edinburgh">University of Edinburgh</a></li>
<li><a href="University_of_St_Andrews" title="University of St Andrews">University of St Andrews</a></li>
<li><a href="Manchester_University" class="mw-redirect" title="Manchester University">Manchester University</a></li>
<li><a href="Massachusetts_Institute_of_Technology" title="Massachusetts Institute of Technology">Massachusetts Institute of Technology</a> (MIT)</li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Government</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Royal_Radar_Establishment" title="Royal Radar Establishment">Royal Radar Establishment</a> (RRE)</li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">People</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="ALGOL_58" title="ALGOL 58">ALGOL 58</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="John_Backus" title="John Backus">John Backus</a></li>
<li><a href="Friedrich_L._Bauer" title="Friedrich L. Bauer">Friedrich L. Bauer</a></li>
<li><a href="Hermann_Bottenbruch" title="Hermann Bottenbruch">Hermann Bottenbruch</a></li>
<li><a href="Charles_Katz" title="Charles Katz">Charles Katz</a></li>
<li><a href="Alan_Perlis" title="Alan Perlis">Alan Perlis</a></li>
<li><a href="Heinz_Rutishauser" title="Heinz Rutishauser">Heinz Rutishauser</a></li>
<li><a href="Klaus_Samelson" title="Klaus Samelson">Klaus Samelson</a></li>
<li><a href="Joseph_Henry_Wegstein" title="Joseph Henry Wegstein">Joseph Henry Wegstein</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Bruce_Arden" title="Bruce Arden">Bruce Arden</a></li>
<li><a href="Bernard_Galler" title="Bernard Galler">Bernard Galler</a></li>
<li><a href="Robert_M._Graham_(computer_scientist)" title="Robert M. Graham (computer scientist)">Robert M. Graham</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="ALGOL_60" title="ALGOL 60">ALGOL 60</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><td colspan="2" class="navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Backus^</li>
<li><a href="Roland_Carl_Backhouse" title="Roland Carl Backhouse">Roland Carl Backhouse</a></li>
<li>Bauer^</li>
<li><a href="Richard_Bird_(computer_scientist)" title="Richard Bird (computer scientist)">Richard Bird</a></li>
<li><a href="Stephen_R._Bourne" title="Stephen R. Bourne">Stephen R. Bourne</a></li>
<li><a href="Edsger_W._Dijkstra" title="Edsger W. Dijkstra">Edsger W. Dijkstra</a></li>
<li><a href="Andrey_Ershov" class="mw-redirect" title="Andrey Ershov">Andrey Ershov</a></li>
<li><a href="Robert_W._Floyd" title="Robert W. Floyd">Robert W. Floyd</a></li>
<li><a href="Jeremy_Gibbons" title="Jeremy Gibbons">Jeremy Gibbons</a></li>
<li>Julien Green</li>
<li><a href="David_Gries" title="David Gries">David Gries</a></li>
<li><a href="Eric_Hehner" title="Eric Hehner">Eric Hehner</a></li>
<li><a href="Tony_Hoare" title="Tony Hoare">Tony Hoare</a></li>
<li><a href="J%C3%B8rn_Jensen" title="Jørn Jensen">Jørn Jensen</a></li>
<li>Katz^</li>
<li><a href="Peter_Landin" title="Peter Landin">Peter Landin</a></li>
<li><a href="Tom_Maibaum" title="Tom Maibaum">Tom Maibaum</a></li>
<li><a href="Conor_McBride" title="Conor McBride">Conor McBride</a></li>
<li><a href="John_McCarthy_(computer_scientist)" title="John McCarthy (computer scientist)">John McCarthy</a></li>
<li><a href="Carroll_Morgan_(computer_scientist)" title="Carroll Morgan (computer scientist)">Carroll Morgan</a></li>
<li><a href="Peter_Naur" title="Peter Naur">Peter Naur</a></li>
<li><a href="Maurice_Nivat" title="Maurice Nivat">Maurice Nivat</a></li>
<li><a href="John_E._L._Peck" title="John E. L. Peck">John E. L. Peck</a></li>
<li>Perlis^</li>
<li><a href="Brian_Randell" title="Brian Randell">Brian Randell</a></li>
<li>Rutishauser^</li>
<li>Samelson^</li>
<li><a href="Jacob_T._Schwartz" title="Jacob T. Schwartz">Jacob T. Schwartz</a></li>
<li><a href="Micha_Sharir" title="Micha Sharir">Micha Sharir</a></li>
<li><a href="David_Turner_(computer_scientist)" title="David Turner (computer scientist)">David Turner</a></li>
<li><a href="Bernard_Vauquois" title="Bernard Vauquois">Bernard Vauquois</a></li>
<li><a href="Eiiti_Wada" title="Eiiti Wada">Eiiti Wada</a></li>
<li>Wegstein^</li>
<li><a href="Adriaan_van_Wijngaarden" title="Adriaan van Wijngaarden">Adriaan van Wijngaarden</a></li>
<li><a href="Mike_Woodger" title="Mike Woodger">Mike Woodger</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Simula" title="Simula">Simula</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Ole-Johan_Dahl" title="Ole-Johan Dahl">Ole-Johan Dahl</a></li>
<li><a href="Kristen_Nygaard" title="Kristen Nygaard">Kristen Nygaard</a></li></ul>
</div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="ALGOL_68" title="ALGOL 68">ALGOL 68</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li>Bauer^</li>
<li><a href="Susan_G._Bond" title="Susan G. Bond">Susan G. Bond</a></li>
<li>Bourne^</li>
<li><a href="Robert_Dewar" title="Robert Dewar">Robert Dewar</a></li>
<li>Dijkstra^</li>
<li><a href="https://de.wikipedia.org/wiki/Gerhard_Goos" class="extiw external" title="de:Gerhard Goos">Gerhard Goos</a></li>
<li><a href="Michael_Guy" title="Michael Guy">Michael Guy</a></li>
<li>Hoare^</li>
<li><a href="Cornelis_H._A._Koster" title="Cornelis H. A. Koster">Cornelis H. A. Koster</a></li>
<li><a href="Peter_Landin" title="Peter Landin">Peter Landin</a></li>
<li><a href="Charles_H._Lindsey" title="Charles H. Lindsey">Charles H. Lindsey</a></li>
<li><a href="Barry_J._Mailloux" title="Barry J. Mailloux">Barry J. Mailloux</a></li>
<li>McCarthy^</li>
<li><a href="Lambert_Meertens" title="Lambert Meertens">Lambert Meertens</a></li>
<li>Naur^</li>
<li>Peck^</li>
<li><a href="Willem_van_der_Poel" title="Willem van der Poel">Willem van der Poel</a></li>
<li>Randell^</li>
<li><a href="Douglas_T._Ross" title="Douglas T. Ross">Douglas T. Ross</a></li>
<li>Samelson^</li>
<li><a href="Michel_Sintzoff" title="Michel Sintzoff">Michel Sintzoff</a></li>
<li>van Wijngaarden^</li>
<li><a href="Niklaus_Wirth" title="Niklaus Wirth">Niklaus Wirth</a></li>
<li>Woodger^</li>
<li><a href="Philip_Woodward" title="Philip Woodward">Philip Woodward</a></li>
<li><a href="Nobuo_Yoneda" title="Nobuo Yoneda">Nobuo Yoneda</a></li></ul>
</div></td></tr></tbody></table><div>
<ul><li><a href="Hal_Abelson" title="Hal Abelson">Hal Abelson</a></li>
<li><a href="John_Barnes_(computer_scientist)" title="John Barnes (computer scientist)">John Barnes</a></li>
<li><a href="Tony_Brooker" title="Tony Brooker">Tony Brooker</a></li>
<li><a href="Ron_Morrison" title="Ron Morrison">Ron Morrison</a></li>
<li><a href="Peter_O'Hearn" title="Peter O'Hearn">Peter O'Hearn</a></li>
<li><a href="John_C._Reynolds" title="John C. Reynolds">John C. Reynolds</a></li></ul></div></td></tr></tbody></table><div>
<ul><li><i><a href="ALGOL_Bulletin" title="ALGOL Bulletin">ALGOL Bulletin</a></i></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Comparison</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em">
<li><a href="ALGOL_58#ALGOL_58's_influence_on_ALGOL_60" title="ALGOL 58">ALGOL 58 influence on ALGOL 60</a></li>
<li><a href="ALGOL_68#Comparisons_with_other_languages" title="ALGOL 68">ALGOL 68 to other languages</a></li>
</div></td></tr><tr><td class="navbox-abovebelow" colspan="2"><div>
<ul><li><b>^ = full name and link in prior ALGOL version above</b><br><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category: ALGOL</b> <span class="noviewer" typeof="mw:File"><span title="Category"></span></span> <b>Category: ALGOL 60</b></li></ul>
</div></td></tr></tbody></table></div>
<div class="navbox-styles"></div><div role="navigation" class="navbox authority-control" aria-labelledby="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q4117854#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata645" style="padding:3px"><table class="nowraplinks hlist mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div id="Authority_control_databases_frameless&#124;text-top&#124;10px&#124;alt=Edit_this_at_Wikidata&#124;link=https&#58;//www.wikidata.org/wiki/Q4117854#identifiers&#124;class=noprint&#124;Edit_this_at_Wikidata645" style="font-size:114%;margin:0 4em">Authority control databases </div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">National</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://id.loc.gov/authorities/sh85079492">United States</a></span></li><li><span class="uid"><a rel="nofollow" class="external text" href="https://www.nli.org.il/en/authorities/987007541035505171">Israel</a></span></li></ul></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"><ul><li><span class="uid"><a rel="nofollow" class="external text" href="https://lux.collections.yale.edu/view/concept/2dbe5605-c6f8-44c5-bb57-c9a62d1d925c">Yale LUX</a></span></li></ul></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2025-07-18" href="https://en.wikipedia.org/wiki/?title=MAD_(programming_language)&oldid=1301116190">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>
</body></html>